1. Field of the Invention
The present invention relates to markup language processing and more particularly to expression language processing of markup.
2. Description of the Related Art
Data can be embedded and communicated within markup language encoded content. Processing a markup language document can require the application of query expressions to the markup language document to navigate, extract and process the embedded data. The navigation, extraction and processing of data in a markup language document can be facilitated through the use of information about the content, referred to hereinafter as “meta-information”. Meta-information can be provided with the original content and can be used to assist the transcoding process in uniquely identifying portions of the content. Notably, meta-information can be created without any modification of the original content if the meta information is described separately from the content. In this regard, the separate provision of such meta-information often is referred to as “external annotation”. XML, a W3C recommendation (Nov. 26, 2008) is one such markup language. It's meta-information is specified by XML-schema, also a W3C recommendation (Oct. 28, 2004).
External annotations consist of the meta-information and corresponding references to portions of the content. The meta-information and references typically are described according to the Resource Description Framework (RDF) and the XML Path/Pointer (XPath/XPointer) specification. XPath is a syntax for identifying particular sections of markup, such as an HTML or an XML formatted document. Each of the RDF and XPath/XPointer specifications have been standardized by the World Wide Web Consortium, referred to hereafter as the “W3C”.
XPath, described in depth in James Clark and Steve DeRose, XML Path Language (XPath) Version 1.0, W3C Recommendation (Nov. 16, 1999 is a computer language to address parts of content—namely an XML document—in support of which XPath provides basic facilities for manipulating strings, numbers and boolean values. XPath uses a compact, non-XML syntax to facilitate the use of XPath technology within Universal Resource Indicators (URI) and an XML attribute value. XPath operates on the abstract, logical structure of an XML document, rather than its surface syntax. Thus, XPath is aptly named in view of its URL-like path notion for navigating through the hierarchical structure of an XML document. XML Path Language (XPath) Version 2.0, W3C Recommendation (Jan. 23, 2007), has succeeded the XPath 1.0 specification.
XPath expressions operate over a tree structure that is specified by the specification. The tree structure, which we term “Data Model” for the purposes of this document, concretely may be represented by various forms, one of which is SDO. This data model conforms to an instance of XML-Schema meta-information. While XML-Schema provides a way to specify that elements of one name may be substituted for elements of another name (known as Substitution Groups), and a way to specify that elements may be duplicated, XPath does not provide any special mechanisms to allow convenient addressing of such elements across different data model instances
The concrete data model is often a specific form that is optimal for a specific software component. Service data objects (SDO) are one such form of a concrete data model, and provide a framework for data application development, which includes an architecture and application programming interface (API). SDO supports compound data objects as a graph of data objects which incorporate a change history for each node of the graph. In this regard, SDO client modifications of the data graph are reflected in an internal change summary data structure. In operation, upon submission of a modified SDO graph, a data mediator service propagates the changes specified by the change summary to the ultimate data source. SDO uses XML-Schema to represent it's meta-information. SDO also provides a specialized and simplified form of addressing known as SDOPath. SDOPath implicitly deals with Substitution Groups and repeating elements. A user who is moving from SDOPath to XPath will find it difficult to explicitly specify this addressing.
It will be apparent to the skilled artisan that SDO simplifies the data programming model in object oriented computing and abstracts data in a service oriented architecture (SOA). SDO further unifies data application development and supports and integrates XML. Thus, SDO provides an advanced and able data model for supporting enterprise class data driven applications.